Adapting content to augumented reality virtual objects

ABSTRACT

Technologies for adapting content to augmented reality virtual objects include a content consumption device to render selected content and a mobile computing device to render a virtual object within the physical environment of the mobile computing device. The mobile computing device may transfer the virtual object to the content consumption device. The content consumption device may adapt the content based on the transferred virtual object, and render the adapted content. The adapted content may be selected from a number of pre-defined scenes, or may be generated to include the virtual object. The adapted content may include other characters or objects that react to the transferred virtual object. The virtual object may be transferred back to the mobile computing device with updated attributes. The content may be streamed from a content source over a network. Other embodiments are described and claimed.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 14/361,215, entitled “ADAPTING CONTENT TOAUGUMENTED REALITY VIRTUAL OBJECTS,” now U.S. Pat. No. 9,524,587, whichwas filed on May 28, 2014, and which is a national stage entry under 35U.S.C. § 371(b) of International Application No. PCT/US2013/069618,which was filed Nov. 12, 2013.

BACKGROUND

Augmented reality systems project virtual characters and objects intophysical locations, allowing for immersive experiences and novelinteraction models. Typically, an augmented reality device calculates aposition of a virtual object while capturing video images of the deviceenvironment (e.g., the environment of a room in which the user of theaugmented reality device is currently located). When the positionassociated with the virtual object is visible in the captured images,the augmented reality device may render the virtual character, forexample by overlaying the environment video with a two- orthree-dimensional animated rendering of the virtual character. Virtualcharacters may interact with real objects in the physical environment,for example, by moving toward physical markers bearing visible coding.

Content consumption devices such as digital televisions typically playmedia content from a local source such as a DVD or stream content from aremote content server. Such content is typically static and notinteractive—that is, a typical movie or television show plays straightthrough, the same every time. Additionally, typical media content islimited to one screen, such as the main television monitor.

BRIEF DESCRIPTION OF THE DRAWINGS

The concepts described herein are illustrated by way of example and notby way of limitation in the accompanying figures. For simplicity andclarity of illustration, elements illustrated in the figures are notnecessarily drawn to scale. Where considered appropriate, referencelabels have been repeated among the figures to indicate corresponding oranalogous elements.

FIG. 1 is a simplified block diagram of at least one embodiment of asystem for adapting content to augmented reality virtual objects;

FIG. 2 is a simplified block diagram of at least one embodiment ofvarious environments that may be established by the system of FIG. 1;

FIG. 3 is a simplified flow diagram of at least one embodiment of amethod for rendering augmented reality virtual objects that may beexecuted by a mobile computing device of the system of FIGS. 1 and 2;and

FIG. 4 is a simplified flow diagram of at least one embodiment of amethod for adapting content to augmented reality virtual objects thatmay be executed by a content consumption device of the system of FIGS. 1and 2.

DETAILED DESCRIPTION OF THE DRAWINGS

While the concepts of the present disclosure are susceptible to variousmodifications and alternative forms, specific embodiments thereof havebeen shown by way of example in the drawings and will be describedherein in detail. It should be understood, however, that there is nointent to limit the concepts of the present disclosure to the particularforms disclosed, but on the contrary, the intention is to cover allmodifications, equivalents, and alternatives consistent with the presentdisclosure and the appended claims.

References in the specification to “one embodiment,” “an embodiment,”“an illustrative embodiment,” etc., indicate that the embodimentdescribed may include a particular feature, structure, orcharacteristic, but every embodiment may or may not necessarily includethat particular feature, structure, or characteristic. Moreover, suchphrases are not necessarily referring to the same embodiment. Further,when a particular feature, structure, or characteristic is described inconnection with an embodiment, it is submitted that it is within theknowledge of one skilled in the art to effect such feature, structure,or characteristic in connection with other embodiments whether or notexplicitly described. Additionally, it should be appreciated that itemsincluded in a list in the form of “at least one of A, B, and C” can mean(A); (B); (C): (A and B); (A and C); (B and C); or (A, B, and C).Similarly, items listed in the form of “at least one of A, B, or C” canmean (A); (B); (C): (A and B); (A and C); (B and C); or (A, B, and C).

The disclosed embodiments may be implemented, in some cases, inhardware, firmware, software, or any combination thereof. The disclosedembodiments may also be implemented as instructions carried by or storedon one or more transitory or non-transitory machine-readable (e.g.,computer-readable) storage media, which may be read and executed by oneor more processors. A machine-readable storage medium may be embodied asany storage device, mechanism, or other physical structure for storingor transmitting information in a form readable by a machine (e.g., avolatile or non-volatile memory, a media disc, or other media device).

In the drawings, some structural or method features may be shown inspecific arrangements and/or orderings. However, it should beappreciated that such specific arrangements and/or orderings may not berequired. Rather, in some embodiments, such features may be arranged ina different manner and/or order than shown in the illustrative figures.Additionally, the inclusion of a structural or method feature in aparticular figure is not meant to imply that such feature is required inall embodiments and, in some embodiments, may not be included or may becombined with other features.

Referring now to FIG. 1, in the illustrative embodiment, a system 100for adapting content to augmented reality virtual objects includes acontent consumption device 102, a mobile computing device 104, and acontent source 106, which may be in communication with each other over anetwork 110. In use, as discussed in more detail below, the contentconsumption device 102 renders content 108 for presentation to a user.The content 108 may be embodied as any digital media content that may bepresented to the user, including, without limitation, video content,audio content, textual content, animation content, and/or game content.As the content consumption device 102 renders the content 108, themobile computing device 104 establishes one or more augmented realityvirtual objects. It should be understood that a virtual object may be avirtual character, a virtual artifact, virtual equipment, or othervirtual objects that may be rendered by the mobile computing device 104in an augmented reality application. The virtual object established bythe mobile computing device 104 may be transferred to the contentconsumption device 102. Upon being transferred a virtual object, thecontent consumption device 102 adapts the content 108 based on thetransferred virtual object, for example by incorporating the virtualobject into the rendered content 108, adapting actions of characters orother objects of the rendered content 108 to the presence or actions ofthe transferred virtual object, and/or modifying the content scenes orstoryline in response to the transferred virtual object as discussed inmore detail below. By adapting the content 108 to a virtual objectintroduced from the mobile computing device 104, the interactivity andimmersiveness of the content 108 may be increased. Such improvements tothe content 108 may also improve the value of the content 108 to theuser.

The content consumption device 102 may be embodied as any type of deviceon which a user may consume content and capable of performing thefunctions described herein, including, without limitation, a digitaltelevision, a desktop computer, a gaming console, a smart appliance, aset-top box, a smartphone, a cellular telephone, a handset, a computer,a tablet computer, a laptop computer, a notebook computer, a messagingdevice, a vehicle telematics device, a network appliance, a webappliance, a distributed computing system, a multiprocessor system, aprocessor-based system, and/or a consumer electronic device. As shown inFIG. 1, the content consumption device 102 includes a processor 120, aninput/output subsystem 122, a memory 124, a data storage device 126, andcommunication circuitry 128. Of course, the content consumption device102 may include other or additional components, such as those commonlyfound in a desktop computer (e.g., various input/output devices), inother embodiments. Additionally, in some embodiments, one or more of theillustrative components may be incorporated in, or otherwise form aportion of, another component. For example, the memory 124, or portionsthereof, may be incorporated in the processor 120 in some embodiments.

The processor 120 may be embodied as any type of processor capable ofperforming the functions described herein. For example, the processor120 may be embodied as a single or multi-core processor(s), digitalsignal processor, microcontroller, or other processor orprocessing/controlling circuit. Similarly, the memory 124 may beembodied as any type of volatile or non-volatile memory or data storagecapable of performing the functions described herein. In operation, thememory 124 may store various data and software used during operation ofthe content consumption device 102 such as operating systems,applications, programs, libraries, and drivers. The memory 124 iscommunicatively coupled to the processor 120 via the I/O subsystem 122,which may be embodied as circuitry and/or components to facilitateinput/output operations with the processor 120, the memory 124, andother components of the content consumption device 102. For example, theI/O subsystem 122 may be embodied as, or otherwise include, memorycontroller hubs, input/output control hubs, firmware devices,communication links (i.e., point-to-point links, bus links, wires,cables, light guides, printed circuit board traces, etc.) and/or othercomponents and subsystems to facilitate the input/output operations. Insome embodiments, the I/O subsystem 122 may form a portion of asystem-on-a-chip (SoC) and be incorporated, along with the processor120, the memory 124, and other components of the content consumptiondevice 102, on a single integrated circuit chip.

The data storage device 126 may be embodied as any type of device ordevices configured for short-term or long-term storage of data such as,for example, memory devices and circuits, memory cards, hard diskdrives, solid-state drives, or other data storage devices. The datastorage device 126 may permanently or temporarily store the content 108consumed by the content consumption device 102, as well as informationrelated to virtual objects rendered in connection with the content 108.

The communication circuitry 128 of the content consumption device 102may be embodied as any communication circuit, device, or collectionthereof, capable of enabling communications between the contentconsumption device 102, the mobile computing device 104, the contentsource 106, and/or other remote devices over the network 110. Thecommunication circuitry 128 may be configured to use any one or morecommunication technology (e.g., wireless or wired communications) andassociated protocols (e.g., 3G, LTE, Bluetooth®, Wi-Fi®, WiMAX, etc.) toeffect such communication.

In the illustrative embodiment, the content consumption device 102further includes a display 130 and an audio device 132. The display 130of the content consumption device 102 may be embodied as any type ofdisplay capable of displaying digital information such as a liquidcrystal display (LCD), a light emitting diode (LED), a plasma display, acathode ray tube (CRT), or other type of display device. In someembodiments, the display 130 may be coupled to a touch screen to allowuser interaction with the content consumption device 102. The audiodevice 132 may be embodied as any device capable of generating audiosignals for output, such as a paper cone speaker, an audio transducer,an audio output jack, a digital-to-analog converter (DAC), or other typeof audio device.

The illustrative content consumption device 102 further includes acamera 134 and an audio input 136 in some embodiments. The camera 134may be embodied as a digital camera or other digital imaging deviceintegrated with the content consumption device 102 or otherwisecommunicatively coupled thereto. The camera 134 includes an electronicimage sensor, such as an active-pixel sensor (APS), e.g., acomplementary metal-oxide-semiconductor (CMOS) sensor, or acharge-coupled device (CCD). The camera 134 may be used to captureimages of the environment of the content consumption device 102including, in some embodiments, capturing motion gestures performed bythe user of the content consumption device 102. The audio input 136 maybe embodied as any sensor capable of capturing audio signals such as amicrophone, a line input jack and associated circuitry, ananalog-to-digital converter (ADC), or other type of audio sensor.

The mobile computing device 104 is configured to manage one or morevirtual objects and to transfer the virtual objects to or from thecontent consumption device 102. The mobile computing device 104 may beembodied as any kind of mobile computing device capable of performingthe functions described herein including, without limitation, asmartphone, a cellular telephone, a handset, a computer, a tabletcomputer, a laptop computer, a notebook computer, a messaging device, anetwork appliance, a web appliance, a distributed computing system, amultiprocessor system, a processor-based system, and/or a consumerelectronic device. Illustratively, the mobile computing device 104includes a processor 140, an I/O subsystem 142, a memory 144, a datastorage device 146, communication circuitry 148, a display 150, an audiodevice 152, a camera 154, an audio input 156, and/or other componentsand devices commonly found in a smartphone or similar computing device.Those individual components of the mobile computing device 104 may besimilar to the corresponding components of the content consumptiondevice 102, the description of which is applicable to the correspondingcomponents of the mobile computing device 104 and is not repeated hereinso as not to obscure the present disclosure.

The content source 106 is configured to provide access across thenetwork 110 to the content 108. For example, the content source 106 maystream video content, audio content, animation content, game content, orother content to the content consumption device 102. In someembodiments, the content source 106 may also authenticate the user ofthe content consumption device 102. The content source 106 may beembodied as any type of server computing device, or collection ofdevices, capable of performing the functions described herein. As such,the content source 106 may be embodied as a single server computingdevice or a collection of servers and associated devices. For example,in some embodiments, the content source 106 may be embodied as a“virtual server” formed from multiple computing devices distributedacross the network 110 and operating in a public or private cloud.Accordingly, although the content source 106 is illustrated in FIG. 1 asembodied as a single server computing device, it should be appreciatedthat the content source 106 may be embodied as multiple devicescooperating together to facilitate the functionality described below.Further, the content source 106 may include components and featuressimilar to the content consumption device 102 and/or typical dataservers such as a processor, I/O subsystem, memory, data storage,communication circuitry, and various peripheral devices, which are notillustrated in FIG. 1 for clarity of the present description. Of course,in some embodiments the content consumption device 102 may accesscontent 108 from a number of different content sources 106 (not shown).

The content 108 may be embodied as any network-accessible data storage,including without limitation as a database, a file server, networkattached storage, or storage area network. The content 108 is adaptable,and may include alternate content for various combinations of virtualcharacters, objects, and actions. For example, the content 108 mayinclude a number of pre-defined scenes or storylines including differentcombinations of virtual characters. The content 108 is illustrated asnetworked data accessible by the content source 106; however, in otherembodiments the content 108 may be in any location accessible to thecontent consumption device 102, including in local storage or a localfile server.

As discussed in more detail below, the content consumption device 102,the mobile computing device 104, and the content source 106 may beconfigured to transmit and receive data with each other and/or otherremote devices over the network 110. The network 110 may be embodied asany number of various wired and/or wireless networks. For example, thenetwork 110 may be embodied as, or otherwise include, a wired orwireless local area network (LAN), a wired or wireless wide area network(WAN), a cellular network, and/or a publicly-accessible, global networksuch as the Internet. As such, the network 110 may include any number ofadditional devices, such as additional computers, routers, and switches,to facilitate communications among the devices of the system 100.

Referring now to FIG. 2, in the illustrative embodiment, the mobilecomputing device 104 establishes an environment 200 during operation.The illustrative environment 200 includes an augmented realitycontroller 202, an augmented reality state module 208, and an augmentedreality rendering module 216. The various modules of the environment 200may be embodied as hardware, firmware, software, or a combinationthereof.

The augmented reality state module 208 is configured to record andsimulate a number of virtual objects 210 that may be rendered by theaugmented reality rendering module 216. The virtual objects 210 mayinclude virtual characters 212, static virtual objects 214, and anyother virtual objects that may be rendered by the mobile computingdevice 104. The augmented reality state module 208 may store and updatevarious attributes of the virtual objects 210 including position,appearance, current action, abilities, characteristics, or any otherattribute. The augmented reality state module 208 may simulate orotherwise model the position and/or behavior of the virtual objects 210.

The augmented reality rendering module 216 is configured to render oneor more virtual objects 210 in the environment of the mobile computingdevice 104. For example, the augmented reality rendering module 216 maycapture video of the device environment using the camera 154 and thenrender virtual objects 210 as two- or three-dimensional animatedoverlays on the captured video content.

The augmented reality controller 202 is configured to manage the virtualobjects 210. The augmented reality controller 202 may command theaugmented reality state module 208 to add or remove virtual objects 210,or to initiate actions of the virtual objects 210. The augmented realitycontroller 202 is also configured to transfer virtual objects 210 to andfrom the content consumption device 102 as discussed in more detailbelow. The augmented reality controller 202 may transfer virtual objects210 based on attributes such as position, or in response to userinterface commands such as touch commands or input gestures. In someembodiments, those functions may be performed by sub-modules, forexample by a communication module 204 or by a user interface module 206.

Still referring to FIG. 2, in the illustrative embodiment, the contentconsumption device 102 establishes an environment 220 during operation.The illustrative environment 220 includes an augmented realitycontroller 222, a content state module 228, a content determinationmodule 238, and a content rendering module 242. Additionally, in someembodiments, the environment 220 may include a user account module 244.The various modules of the environment 220 may be embodied as hardware,firmware, software, or a combination thereof.

The content state module 228 is configured to record and model any stateassociated with the content 108. The content state may include any datadescribing the state of the content 108 including, without limitation,the state of virtual objects 230 such as virtual characters 232, staticvirtual objects 234, predefined characters, attributes of characters orobjects, or actions or behaviors of characters and objects. The contentstate may also include storyline progression, scene selection, and/orany other data useful in describing the state of the content 108. Forexample, the content state module 228 may be configured to record thenumber, identity, and attributes of any virtual characters 232 and/orvirtual objects 234 appearing in or interacting with the content 108.Recorded attributes may include position, appearance, current action, orany other attribute. The content state module 228 may be furtherconfigured to store user and/or character interactions 236 with thecontent 108 over time, allowing the content 108 to adapt to priorbehavior of the user and/or virtual characters 232. The interactions 236may record prior behaviors and activities of the virtual characters 232and/or virtual objects 234, as well as prior user commands In someembodiments, the content state module 228 may also be configured tomodel the behavior of the virtual characters 232 or virtual objects 234,for example through motion tracking, physics modeling, artificialintelligence, and/or behavior modeling.

The augmented reality controller 222 is configured to manage the virtualobjects 230 and interactions 236. The augmented reality controller 222may command the content state module 228 to add or remove virtualcharacters 232 and/or virtual objects 234, or to initiate interactions236. The augmented reality controller 222 is also configured to transfervirtual objects 230 to and from the mobile computing device 104. Theaugmented reality controller 222 may transfer the virtual objects 230based on attributes such as position, or in response to user interfacecommands such as motion gestures. In some embodiments, those functionsmay be performed by sub-modules, for example by a communication module224 or by a user interface module 226.

The content determination module 238 is configured to adapt the content108 based on the current content state as maintained by the contentstate module 228. The content 108 may include a number of alternatescenes or actions for different combinations of virtual characters 232,virtual objects 234, and/or interactions 236. The content determinationmodule 238 may adapt the content 108 by applying one or more behaviorrules 240, which define how the content 108 adapts to aspects of thecontent state. For example, the behavior rules 240 may define alternatescenes or storylines from the content 108 based on the virtualcharacters 232 present in the content state. In some embodiments, thebehavior rules 240 may define individual actions performed by thevirtual characters 232 and/or virtual objects 234 based on the currentcontent state. As described below, in addition to being established inthe environment 220 of the content consumption device 102, in someembodiments the behavior rules 240 may be established by the contentsource 106.

The content rendering module 242 is configured to render the content 108adapted by the content determination module 238 for presentation to theuser. As described above, the rendered content 108 may include videocontent, audio content, textual content, animation content, gamecontent, or any other media content. The rendered content 108 mayinclude the virtual characters 232, virtual objects 234, and/orinteractions 236 managed by the content state module 228. The content108 may be streamed from the content source 106, or in some embodimentsstored locally on the content consumption device 102.

The user account module 244, in some embodiments, may be configured toauthenticate the user to access a user account 262 maintained by thecontent source 106. The user account 262 may be associated with some orall of the content 108 and/or the behavior rules 240. The user accounts262 may control access to the content 108 and/or the behavior rules 240;that is, the content consumption device 102 may access only the content108 and/or the behavior rules 240 that are associated with the currentuser account 262.

Still referring to FIG. 2, in the illustrative embodiment the contentsource 106 establishes an environment 260 during operation. Theillustrative environment 260 includes the content 108, the behaviorrules 240, and the user accounts 262. As described above, the contentconsumption device 102 may stream or otherwise access the content 108and/or the behavior rules 240 via the content source 106. Additionally,the user accounts 262 may be associated with and control access to someor all of the content 108 and/or behavior rules 240. The various modulesof the environment 260 may be embodied as hardware, firmware, software,or a combination thereof.

Referring now to FIG. 3, in use, the mobile computing device 104 mayexecute a method 300 for rendering augmented reality virtual objects.The method 300 begins with block 302, in which the mobile computingdevice 104 initializes the state of the virtual objects 210. Toinitialize a virtual character 212 or a virtual object 214, the mobilecomputing device 104 may select the particular virtual character 212 orvirtual object 214 and initialize any attributes of the selected virtualcharacter 212 or virtual object 214. In some embodiments, the mobilecomputing device 104 may initialize a character model or simulation, forexample defining an initial position and action of the virtual character212 or virtual object 214. In some embodiments, in block 304 the mobilecomputing device 104 may log in to a user account to initialize thevirtual character 212 or virtual object 214. To log in to the useraccount, the mobile computing device 104 may authenticate the user ofthe mobile computing device 104 locally, or may contact the contentsource 106 to authenticate the user and thereby log in to the useraccount. Logging in to the user account may allow the mobile computingdevice 104 to access particular virtual characters 212 or virtualobjects 214 that have been associated with that user account, as well asany attributes that have been associated with that user account. Forexample, the user account may record virtual objects 210 and/orattributes that have been previously purchased or unlocked by the user.

In block 306, the mobile computing device 104 captures the localenvironment of the mobile computing device 104. In many embodiments, themobile computing device 104 may capture an image or a video stream ofthe device environment using the camera 154. In some embodiments, themobile computing device 104 may also determine its physical positionand/or orientation in the local environment. In other embodiments, themobile computing device 104 may determine other aspects of the deviceenvironment related to rendering augmented reality content, such as thedimensions of the current room, the acoustic properties of the deviceenvironment, or other aspects.

In block 308, in some embodiments the mobile computing device 104 maycapture a user interface command related to the virtual objects 210. Forexample, the user interface command may command the mobile computingdevice 104 to move a virtual object 210, activate an action of a virtualobject 210, or otherwise manage a virtual object 210. The user interfacecommand may be captured using any input modality supported by the mobilecomputing device 104. For example, the user may select a user interfacecontrol on the display 150, perform a motion gesture recognized by atouch screen of the display 150 and/or the camera 154, utter a spokencommand detected by the audio input 156, perform a movement of themobile computing device 104 captured by one or more motion sensors ofthe mobile computing device 104, or perform any other input action.

In block 310, the mobile computing device 104 models the position oraction of the virtual objects 210 in physical space. The mobilecomputing device 104 may determine the coordinates of the virtualobjects 210 in virtual space, and translate the virtual coordinates to acorresponding physical position in the physical environment of themobile computing device 104. Similarly, the mobile computing device 104may model the orientation, configuration, appearance, or otherattributes of the virtual objects 210. The mobile computing device 104may perform any form of modeling. For example, the mobile computingdevice 104 may replay predefined scenes or animations to determine theposition and/or actions of a virtual character 212. In some embodiments,the mobile computing device 104 may simulate, track, or otherwise modelthe motion of the virtual character 212 in space, for example using aphysics engine. As an example, consider that the virtual character 212is a virtual pet such as a salamander. The mobile computing device 104may simulate the virtual salamander's activities (e.g., crawling,basking) and determine a position in the device environment for thevirtual salamander.

In block 312, the mobile computing device 104 renders the virtualobjects 210 in the device environment previously captured. For example,the mobile computing device 104 may determine a viewing frustum based onthe position and/or orientation of the mobile computing device 104and/or the display 150 in physical space. The mobile computing device104 may analyze the position of the virtual objects 210 to determine ifany part of a virtual object 210 lies within the viewing frustum. If so,the mobile computing device 104 may visually render the virtualobject(s) 210 into the captured device environment for display on thedisplay 150. In those embodiments, the display 150 of the mobilecomputing device 104 appears to be a “window” through which virtualobjects 210 are visible within the environment. Additionally oralternative, the mobile computing device 104 may render the virtualobject 210 using other rendering modes. For example, the mobilecomputing device 104 may render audio for the virtual object 210 usingthe audio device 152 such that the audio appears to originate at theposition of the virtual object 210.

In block 314, the mobile computing device 104 updates the state of oneor more virtual objects 210 (e.g., the salamander is now basking). Themobile computing device 104 may update the virtual object 210 state byupdating one or more attributes associated with the virtual object 210based on the position of the virtual object 210, on a user interfacecommand, or on any other input source. In some embodiments, in block 316the mobile computing device 104 may transfer the virtual object 210 tothe content consumption device 102. For example, the mobile computingdevice 104 may transfer the virtual object 210 to the contentconsumption device 102 when the virtual location of the virtual object210 is nearby the content consumption device 102. In that example, thevirtual object 210 may move in virtual space near the display 130 of thecontent consumption device 102, and then be transferred to the contentconsumption device 102. As another example, the mobile computing device104 may transfer the virtual object 210 in response to a captured userinterface command In that example, the user may perform a touch gestureto “flick” the virtual object 210 in the direction of the contentconsumption device 102, which the mobile computing device 104 mayinterpret as a user interface command to transfer the virtual object 210to the content consumption device 102. Continuing the virtual petexample, the user may execute a gesture command directing the virtualsalamander to crawl toward the display 130 of the content consumptiondevice 102. When the virtual salamander appears to reach the display130, the virtual salamander may be transferred to the contentconsumption device 102.

To perform the transfer of the virtual object 210, the mobile computingdevice 104 may transmit virtual object 210 identification data andattributes associated with the virtual object 210 to the contentconsumption device 102. After transmitting the virtual object 210, themobile computing device 104 may update the virtual objects 210,including the virtual characters 212 and/or the virtual objects 214, toindicate that the virtual object 210 has been transferred to anotherdevice or delete the virtual object 210 altogether.

In some embodiments, in block 318 the mobile computing device 104 mayreceive a virtual object 210 from the content consumption device 102.The mobile computing device 104 may receive the virtual object 210 usingthe communication circuitry 148. As described below, the virtual object210 may be received from the content consumption device 102 in responseto a user interface command captured by the content consumption device102, or when the virtual object 210 has left the virtual spaceassociated with the content consumption device 102. Further continuingthe virtual pet example, the mobile computing device 104 may receive thevirtual salamander when the virtual salamander appears to crawl out ofthe display 130 back into the device environment of the mobile computingdevice 104. To receive the virtual object 210, the mobile computingdevice 104 may receive virtual object 210 identification data andattributes associated with the virtual object 210 from the contentconsumption device 102. In some embodiments, the virtual object 210 mayhave previously been transferred from the mobile computing device 104 tothe content consumption device 102. In those embodiments, the attributesof the received virtual object 210 may be different from when firsttransferred to the content consumption device 102. After receiving thevirtual object 210, the mobile computing device 104 may update thevirtual characters 212 and/or the virtual objects 214 to indicate thatthe virtual object 210 has been received from the content consumptiondevice 102. After updating the state of the virtual objects 210, themethod 300 loops back to block 306 to continue augmented realityrendering.

Referring now to FIG. 4, in use, the content consumption device 102 mayexecute a method 400 for adapting content to augmented reality virtualobjects. The method 400 begins with block 402, in which the contentconsumption device 102 initializes the content state. As part ofinitializing the content state, the content consumption device 102 mayinitialize the virtual objects 230 or interactions 236, for example bystarting with pre-defined set of data or reloading data from an earliersession. In some embodiments, in block 404 the content consumptiondevice 102 may select content 108 for presentation to the user. Forexample, the content consumption device 102 may select a particulartelevision program, movie, video game, advertisement, or other contentstored within the content 108 for presentation to the user. The contentconsumption device 102 may query, open a connection with, or otherwisecontact the content source 106 to select the content 108.

In some embodiments, in block 406 the content consumption device 102 maylog in to a user account to initialize the content state. To log in tothe user account, the content consumption device 102 may authenticatethe user of the content consumption device 102 locally, or may contactthe content source 106 to authenticate the user and thereby log in tothe user account. Logging in to the user account may allow the contentconsumption device 102 to access particular content 108 and/or behaviorrules 240 that have been associated with the user account (e.g.,behavior rules that have been previously defined, purchased, or unlockedby the user). Additionally or alternatively, the content consumptiondevice 102 may log in to the user account to access virtual characters232, virtual objects 234, or interactions 236 that have previously beenassociated with that user account, as well as any attributes that havebeen associated with that user account. For example, the user accountmay record virtual characters 232, virtual objects 234, and attributesthat have been previously purchased or unlocked by the user.

In block 408, the content consumption device 102 renders the selectedcontent 108. The content consumption device 102 may render the contentby displaying video, text, rendered computer graphics, or other visualinformation on the display 130, by rendering audio output using theaudio device 132, projecting content into the device environment, or byotherwise presenting the content 108 in a format usable by the user. Insome embodiments, the content consumption device 102 may record therendered content 108 for future playback. The rendered content 108 mayinclude representations of the current content state, including thevirtual objects 230 or the interactions 236 that have been determinedbased on virtual objects 230 received from the mobile computing device104. In some embodiments, in block 410 the content consumption device102 may render the content 108 by rendering scenes selected from anumber of pre-defined scenes of the content 108. The scenes may includeany form of pre-rendered or scripted content, such as video files, audiofiles, dialog, or scripted animations. Additionally or alternatively, insome embodiments in block 412 the content consumption device 102 maymodel selected behaviors of the virtual objects 230. For example, thecontent consumption device 102 may simulate the behavior of virtualcharacters 232 and/or virtual objects 234 using a physics engine, or bymodeling the interaction of the virtual objects 230 based on theirattributes. In some embodiments, the content consumption device 102 mayselect or combine certain pre-defined or scripted actions for thevirtual objects 230 based on the current content state. Thus, renderingthe content 108 based on the current content state may generate novel,unexpected, or emergent behaviors. In some embodiments, in block 414 thecontent consumption device 102 may stream the selected content 108 fromthe content source 106.

In block 416, the content consumption device 102 determines changes tothe current content state. Changes to the content state may includechanges to the virtual objects 230 or the interactions 236 maintained bythe content consumption device 102. In some embodiments, in block 418the content consumption device 102 may transfer a virtual object 230 toor from the local mobile computing device 104. For example, the contentconsumption device 102 may receive a nearby virtual object 230 from alocal mobile computing device 104. In that example, the contentconsumption device 102 may receive a virtual object 230 from the mobilecomputing device 104 when the virtual object 230 has a position that isnearby, proximal, or otherwise associated with the content consumptiondevice 102. Continuing that example, the virtual object 230 may benearby the content consumption device 102 when its position coincideswith the position of the display 130 or a viewing frustum of the display130. In other words, the virtual object 230 may be nearby the contentconsumption device 102 when the virtual object 230 appears to be withinthe display 130. Additionally or alternatively, the virtual object 230may be nearby the content consumption device 102 when the position ofthe virtual object 230 is within a threshold distance of the contentconsumption device 102, for example one meter. As an example, consider avirtual character 232 such as a monster. The monster may virtually movetoward the display 130 in response to a user command or based on itsmodeled behavior. When the monster appears to be standing next to thedisplay 130 or stepping into the display 130, the monster may betransferred to the content consumption device 102.

To transfer the virtual object 230, the content consumption device 102may receive a virtual object 230 identifier, object attributes, or otherinformation describing the virtual object 230 from a remote device usingthe communication circuitry 128. The content consumption device 102 maycontact the local mobile computing device 104 using short-rangecommunications capability of the communication circuitry 128 such as aWi-Fi® or Bluetooth® radio connection. Similarly, the virtual object 230may be transferred to the mobile computing device 104 when the virtuallocation of the virtual object 230 leaves the proximity of the contentconsumption device 102.

In some embodiments, in block 420 the content consumption device 102 maytransfer a virtual object 230 to or from a remote computing device overthe network 110. The virtual object 230 may be transferred using anyavailable communication technique, including a direct networkconnection, email, text message, or other information transfer. Thatremote computing device may be embodied as a mobile computing device104, a content consumption device 102, or any other compatible computingdevice. The remote device may transfer the virtual object 230 whilerendering the same content 108 as the content consumption device 102.Thus, a virtual object 230 generated or used by a remote user may betransferred to the content consumption device 102, allowinggeographically distributed users to interact with each other and withthe content 108.

In some embodiments, in block 422 the content consumption device 102 mayreceive an interactive user command to change the content state. Forexample, the user may command the content consumption device 102 to addor remove a virtual object 230, for a virtual object 230 to initiate aselected action, or to transfer a virtual object 230 to or from themobile computing device 104. In some embodiments, the user may control avirtual object 230 previously transferred from the mobile computingdevice 104. In some embodiments, the user may direct a pre-definedvirtual object 230 associated with the content 108 to be transferred tothe mobile computing device 104. The user command may be generated usingany available input modality, such a graphical user interface, voicecommands, motion gestures, or a dedicated remote control unit.

In block 424, the content consumption device 102 determines whether thecontent state has been updated. For example, the content consumptiondevice 102 may determine if any changes have been recorded in thevirtual characters 232, virtual objects 234, and/or the interactions236. If the content state is unchanged, the method 400 loops back toblock 408 to continue rendering the content 108. If the content statehas been changed, the method 400 advances to block 426.

In block 426, the content consumption device 102 adapts the content 108based on the updated content state. The content consumption device 102may adapt the content 108 by applying the behavior rules 240 to anycombination of the virtual characters 232, virtual objects 234, and/orthe interactions 236 recorded in the content state. In some embodiments,in block 428 the content consumption device 102 may incorporate or dropvirtual objects 230 such as virtual characters(s) 232 and/or virtualobject(s) 234 from the content 108. For example, the content consumptiondevice 102 may select content 108 that includes or references a virtualobject 230 that has been transferred from the mobile computing device104.

In some embodiments, in block 430 the content consumption device 102 mayselect new scenes from the content 108 based on the updated contentstate. In those examples, the content 108 may include numerous versionsof each scene, for example including different content and/or outcomesbased on the content state. The content consumption device 102 mayselect scenes from the content 108 that incorporate the current virtualcharacters 232, virtual objects 234, and/or interactions 236. Thebehavior rules 240 may be embodied as a decision tree or other structureto allow selection of scenes based on the current virtual characters232, virtual objects 234, and/or interactions 236.

In some embodiments, in block 432 the content consumption device 102 mayadapt the behavior of virtual objects 230 based on the updated contentstate. For example, in some embodiments, the content consumption device102 may update attributes of the virtual characters 232 and/or virtualobjects 234, which may affect the modeled behavior of those virtualcharacters 232 and/or virtual objects 234. In those examples, thebehavior rules 240 may determine the updated attributes of the virtualcharacters 232 and/or virtual objects 234. As another example, thevirtual characters 232 and/or virtual objects 234 may react to a virtualobject 230 introduced by the user into the content 108 by performingpredetermined actions. As another example, certain of the virtualcharacters 232 and/or virtual objects 234 may react to an action of avirtual character 232 that was initiated by user input. In that example,the reaction of the virtual characters 232 and/or the virtual objects234 may depend on historical interactions of the user recorded in theinteractions 236. Continuing the monster example described above, assumethat a number of virtual characters 232 are being rendered in thecontent 108. When the virtual monster is transferred to the contentconsumption device 102 while standing next to the display 130, thepre-existing virtual characters 232 may notice the virtual monster, forexample by generating appropriate dialog and/or looking toward thevirtual monster. When the virtual monster appears to enter the display130, those pre-existing virtual characters 232 may scatter and flee.However, if the interactions 236 establish that the virtual monster hasperformed helpful actions in the past, the pre-existing virtualcharacters 232 may instead greet the virtual monster.

In block 434 in some embodiments, the content consumption device 102 mayselect adapted content 108 based on an interactive user command. Forexample, the content consumption device 102 may directly select certainscenes and/or actions based on a user choice. The behavior rules 240 maydetermine the available content 108 for the interactive user command.

In some embodiments, in block 436 the content consumption device 102 mayadapt the content 108 based on the current user account. For example,the content consumption device 102 may select from a subset of thecontent 108 that has been associated with the current user account, orthe content consumption device 102 may apply a subset of the behaviorrules 240 associated with the current user account. The content 108and/or behavior rules 240 may be associated with the user accountthrough purchase, or through previous interactions with the content 108.For example, a basic set of content 108 and/or behavior rules 240 may beavailable to all users for free, and more complicated content 108 and/orbehavior rules 240 may be available for purchase. As another example,the user may unlock new content 108 and/or behavior rules 240 byprogressing through certain scenes of the content 108. After adaptingthe content 108 based on the current content state, the method 400 loopsback to block 408 to render the newly selected content 108.

EXAMPLES

Illustrative examples of the technologies disclosed herein are providedbelow. An embodiment of the technologies may include any one or more,and any combination of, the examples described below.

Example 1 includes a content consumption device for adapting content tovirtual objects, the content consumption device comprising: a contentrendering module to render content to be presented to a user of thecontent consumption device; an augmented reality controller to (i)transfer a virtual object to or from a mobile computing device and (ii)update a content state associated with the content based on thetransferred virtual object; and a content determination module to adaptthe content based on the updated content state; wherein the contentrendering module is further to render the adapted content.

Example 2 includes the subject matter of Example 1, and wherein torender the content comprises to receive the content from a contentsource; and to render the adapted content comprises to receive theadapted content from the content source.

Example 3 includes the subject matter of any of Examples 1 and 2, andwherein transfer the virtual object comprises to receive the virtualobject from the mobile computing device.

Example 4 includes the subject matter of any of Examples 1-3, andwherein to transfer the virtual object comprises to transmit the virtualobject to the mobile computing device.

Example 5 includes the subject matter of any of Examples 1-4, andwherein the augmented reality controller is further to receive aninteractive user command; wherein to transfer the virtual objectcomprises to transfer the virtual object in response to the interactiveuser command.

Example 6 includes the subject matter of any of Examples 1-5, andwherein the interactive user command comprises a voice command, agesture, a touch input, or a movement of the content consumption device.

Example 7 includes the subject matter of any of Examples 1-6, andwherein the virtual object comprises a virtual character.

Example 8 includes the subject matter of any of Examples 1-7, andwherein to transfer the virtual object comprises to transfer characterattributes associated with the virtual character.

Example 9 includes the subject matter of any of Examples 1-8, andwherein to transfer the virtual object comprises to transfer the virtualobject to or from the mobile computing device via a wide-area network.

Example 10 includes the subject matter of any of Examples 1-9, andwherein to transfer the virtual object comprises to determine a positionof the virtual object in the physical environment of the contentconsumption device; determine whether the virtual position of thevirtual object has a predefined relationship to a threshold distancefrom the content consumption device in the physical environment; andtransfer the virtual object in response to a determination that thevirtual position has the predefined relationship to the thresholddistance.

Example 11 includes the subject matter of any of Examples 1-10, andwherein to determine whether the position of the virtual object has thepredefined relationship to the threshold distance comprises to determinewhether the position is within the threshold distance; and to transferthe virtual object comprises to receive the virtual object from themobile computing device.

Example 12 includes the subject matter of any of Examples 1-11, andwherein to determine whether the position of the virtual object has thepredefined relationship to the threshold distance comprises to determinewhether the position is outside the threshold distance; and to transferthe virtual object comprises to transmit the virtual object to themobile computing device.

Example 13 includes the subject matter of any of Examples 1-12, andwherein to update the content state comprises to record a userinteraction.

Example 14 includes the subject matter of any of Examples 1-13, andwherein to adapt the content comprises to select a content scene from aplurality of pre-defined content scenes based on the content state.

Example 15 includes the subject matter of any of Examples 1-14, andwherein to adapt the content comprises to generate a new content scenethat includes the virtual object.

Example 16 includes the subject matter of any of Examples 1-15, andwherein to adapt the content comprises to add the virtual object to thecontent; and to render the adapted content comprises to render thevirtual object in association with the content.

Example 17 includes the subject matter of any of Examples 1-16, andwherein to adapt the content comprises to remove the virtual object fromthe content; and to render the adapted content comprises to render thecontent without the virtual object.

Example 18 includes the subject matter of any of Examples 1-17, andwherein to render the content comprises to render a content characterhaving character attributes; and to adapt the adapted comprises tochange the character attributes of the content character based on theupdated content state.

Example 19 includes the subject matter of any of Examples 1-18, andwherein to change the character attributes comprises to adapt a behaviorof the content character in response to the updated content state.

Example 20 includes the subject matter of any of Examples 1-19, andwherein to render the content comprises rendering a content character;and to adapt the content comprises to determine an action of the contentcharacter based on the updated content state.

Example 21 includes the subject matter of any of Examples 1-20, andfurther comprising a user account module to authenticate a user accountwith a content source; wherein to adapt the content comprises to adaptthe content based on the authenticated user account.

Example 22 includes a mobile computing device for augmented reality, themobile computing device comprising: an augmented reality renderingmodule to render a virtual object having first attributes within anenvironment of the mobile computing device; and an augmented realitycontroller to transmit the virtual object to a content consumptiondevice, wherein the virtual object is not rendered within theenvironment of the mobile computing device in response to transmittingthe virtual object to the content consumption device; and receive thevirtual object having second attributes from the content consumptiondevice, wherein the second attributes are different from the firstattributes; wherein the augmented reality rendering module is further torender the virtual object having the second attributes within theenvironment of the mobile computing device in response to receiving thevirtual object from the content consumption device.

Example 23 includes the subject matter of Example 22, and wherein thevirtual object comprises a virtual character; the first attributescomprise first character attributes; and the second attributes comprisesecond character attributes.

Example 24 includes the subject matter of any of Examples 22 and 23, andwherein the augmented reality controller is further configured toauthenticate a user account with a content source, and initialize thevirtual object based on the authenticated user account.

Example 25 includes a method for adapting content to virtual objects,the method comprising: rendering, by a content consumption device,content to be presented to a user of the content consumption device;transferring, by the content consumption device, a virtual object to orfrom a mobile computing device; updating, by the content consumptiondevice, a content state associated with the content based on thetransferred virtual object; adapting, by the content consumption device,the content based on the updated content state; and rendering, by thecontent consumption device, the adapted content.

Example 26 includes the subject matter of Example 25, and whereinrendering the content comprises receiving the content from a contentsource; and rendering the adapted content comprises receiving theadapted content from the content source.

Example 27 includes the subject matter of any of Examples 25 and 26, andwherein transferring the virtual object comprises receiving the virtualobject from the mobile computing device.

Example 28 includes the subject matter of any of Examples 25-27, andwherein transferring the virtual object comprises transmitting thevirtual object to the mobile computing device.

Example 29 includes the subject matter of any of Examples 25-28, andfurther comprising receiving, by the content consumption device, aninteractive user command; wherein transferring the virtual objectcomprises transferring the virtual object in response to the interactiveuser command.

Example 30 includes the subject matter of any of Examples 25-29, andwherein receiving the interactive user command comprises receiving avoice command, a gesture, a touch input, or a movement of the contentconsumption device.

Example 31 includes the subject matter of any of Examples 25-30, andwherein transferring the virtual object comprises transferring a virtualcharacter.

Example 32 includes the subject matter of any of Examples 25-31, andwherein transferring the virtual character comprises transferringcharacter attributes associated with the virtual character.

Example 33 includes the subject matter of any of Examples 25-32, andwherein transferring the virtual object comprises transferring thevirtual object to or from the mobile computing device via a wide-areanetwork

Example 34 includes the subject matter of any of Examples 25-33, andwherein transferring the virtual object comprises determining a positionof the virtual object in the physical environment of the contentconsumption device; determining whether the virtual position of thevirtual object has a predefined relationship to a threshold distancefrom the content consumption device in the physical environment; andtransferring the virtual object in response to determining the virtualposition has the predefined relationship to the threshold distance.

Example 35 includes the subject matter of any of Examples 25-34, andwherein determining whether the position of the virtual object has thepredefined relationship to the threshold distance comprises determiningwhether the position is within the threshold distance; and transferringthe virtual object comprises receiving the virtual object from themobile computing device.

Example 36 includes the subject matter of any of Examples 25-35, andwherein determining whether the position of the virtual object has thepredefined relationship to the threshold distance comprises determiningwhether the position is outside the threshold distance; and transferringthe virtual object comprises transmitting the virtual object to themobile computing device.

Example 37 includes the subject matter of any of Examples 25-36, andwherein updating the content state comprises recording a userinteraction.

Example 38 includes the subject matter of any of Examples 25-37, andwherein adapting the content comprises selecting a content scene from aplurality of pre-defined content scenes based on the content state.

Example 39 includes the subject matter of any of Examples 25-38 andwherein adapting the content comprises generating a new content scenethat includes the virtual object.

Example 40 includes the subject matter of any of Examples 25-39, andwherein adapting the content comprises adding the virtual object to thecontent; and rendering the adapted content comprises rendering thevirtual object in association with the content.

Example 41 includes the subject matter of any of Examples 25-40, andwherein adapting the content comprises removing the virtual object fromthe content; and rendering the adapted content comprises rendering thecontent without the virtual object.

Example 42 includes the subject matter of any of Examples 25-41, andwherein rendering the content comprises rendering a content characterhaving character attributes; and adapting the content comprises changingthe character attributes of the content character based on the updatedcontent state.

Example 43 includes the subject matter of any of Examples 25-42, andwherein changing the character attributes comprises adapting a behaviorof the content character in response to the updated content state.

Example 44 includes the subject matter of any of Examples 25-43, andwherein rendering the content comprises rendering a content character;and adapting the content comprises determining an action of the contentcharacter based on the updated content state.

Example 45 includes the subject matter of any of Examples 25-44, andfurther comprising authenticating, by the content consumption device, auser account with a content source, wherein adapting the contentcomprises adapting the content based on the authenticated user account.

Example 46 includes a method for augmented reality, the methodcomprising: rendering, by a mobile computing device, a virtual objecthaving first attributes within an environment of the mobile computingdevice; transmitting, by the mobile computing device, the virtual objectto a content consumption device, wherein the virtual object is notrendered within the environment of the mobile computing device inresponse to transmitting the virtual object to the content consumptiondevice; receiving, by the mobile computing device, the virtual objecthaving second attributes from the content consumption device, whereinthe second attributes are different from the first attributes; andrendering, by the mobile computing device, the virtual object having thesecond attributes within the environment of the mobile computing devicein response to receiving the virtual object from the content consumptiondevice.

Example 47 includes the subject matter of Example 46, and whereinrendering the virtual object comprises rendering a virtual characterhaving first character attributes; transmitting the virtual objectcomprises transmitting the virtual character; receiving the virtualobject comprises receiving the virtual character having second characterattributes; and rendering the virtual object comprises rendering thevirtual character having the second character attributes.

Example 48 includes the subject matter of any of Examples 46 and 47, andfurther comprising authenticating, by the mobile computing device, auser account with a content source, and initializing, by the mobilecomputing device, the virtual object based on the authenticated useraccount.

Example 49 includes a computing device comprising: a processor; and amemory having stored therein a plurality of instructions that whenexecuted by the processor cause the computing device to perform themethod of any of Examples 25-48.

Example 50 includes one or more machine-readable storage mediacomprising a plurality of instructions stored thereon that in responseto being executed result in a computing device performing the method ofany of Examples 25-48.

Example 51 includes a computing device comprising means for performingthe method of any of Examples 25-48.

The invention claimed is:
 1. A mobile computer device for augmented reality, the mobile computer device comprising: a camera; an augmented reality rendering module to render a virtual object having first attributes within an environment of the mobile computer device; and an augmented reality controller to: determine, with the camera, that a gesture command indicates that the virtual object is to move in a direction of a content consumption device; transmit, in response to the determination that the gesture command indicates that the virtual object is to move in a direction of the content consumption device and in response to a determination that a position of the virtual object in a virtual space is within a viewing frustum of the content consumption device, the virtual object to the content consumption device, wherein the virtual object is not rendered within the environment of the mobile computer device in response to transmitting the virtual object to the content consumption device; and receive the virtual object having second attributes from the content consumption device, wherein the second attributes are different from the first attributes; wherein the augmented reality rendering module is further to render the virtual object having the second attributes within the environment of the mobile computer device in response to receiving the virtual object from the content consumption device.
 2. The mobile computer device of claim 1, wherein: the virtual object comprises a virtual character; the first attributes comprise first character attributes; and the second attributes comprise second character attributes.
 3. The mobile computer device of claim 1, wherein the augmented reality controller is further configured to authenticate a user account with a content source, and initialize the virtual object based on the authenticated user account.
 4. The mobile computer device of claim 1, wherein the augmented reality rendering module is further to capture video of the environment of the mobile computer device.
 5. The mobile computer device of claim 4, wherein the augmented reality rendering module is further to render the virtual object as an animated overlay on the captured video of the environment.
 6. The mobile computer device of claim 1, wherein to render the virtual object comprises to: determine a view frustum as a function of a position or orientation of the mobile computer device; determine a virtual position of the virtual object in the virtual space; translate the virtual position of the virtual object to a physical position in a physical space representative of the environment of the mobile computer device; determine whether the physical position of the virtual object lies within the view frustum; and render, in response to a determination that the physical position of the virtual object lies within the view frustum, the virtual object.
 7. The mobile computer device of claim 1, wherein the augmented reality rendering module is further to: determine coordinates of the virtual object in the virtual space; translate the coordinates to a physical position in the environment of the mobile computer device; and model a motion of the virtual object in the environment with a physics engine.
 8. A mobile computer device comprising: a processor; a camera; one or more memory devices having stored therein a plurality of instructions that, when executed, cause the mobile computer device to: render a virtual object having first attributes within an environment of the mobile computer device; determine, with the camera, that a gesture command indicates that the virtual object is to move in a direction of a content consumption device; transmit, in response to the determination that the gesture command indicates that the virtual object is to move in a direction of the content consumption device and in response to a determination that a position of the virtual object in a virtual space is within a viewing frustum of the content consumption device, the virtual object to the content consumption device, wherein the virtual object is not rendered within the environment of the mobile computer device in response to transmitting the virtual object to the content consumption device; receive the virtual object having second attributes from the content consumption device, wherein the second attributes are different from the first attributes; and render the virtual object having the second attributes within the environment of the mobile computer device in response to receiving the virtual object from the content consumption device.
 9. The mobile computer device of claim 8, wherein the virtual object comprises a virtual character, the first attributes comprise first character attributes, and the second attributes comprise second character attributes.
 10. The mobile computer device of claim 8, wherein the plurality of instructions, when executed, further cause the mobile computer device to authenticate a user account with a content source, and initialize the virtual object based on the authenticated user account.
 11. The mobile computer device of claim 8, wherein the plurality of instructions, when executed, further cause the mobile computer device to capture video of the environment of the mobile computer device.
 12. The mobile computer device of claim 11, wherein the plurality of instructions, when executed, further cause the mobile computer device to render the virtual object as an animated overlay on the captured video of the environment.
 13. The mobile computer device of claim 8, wherein to render the virtual object comprises to: determine a view frustum as a function of a position or orientation of the mobile computer device; determine a virtual position of the virtual object in the virtual space; translate the virtual position of the virtual object to a physical position in a physical space representative of the environment of the mobile computer device; determine whether the physical position of the virtual object lies within the view frustum; and render, in response to a determination that the physical position of the virtual object lies within the view frustum, the virtual object.
 14. The mobile computer device of claim 8, wherein the plurality of instructions, when executed, further cause the mobile computer device to: determine coordinates of the virtual object in the virtual space; translate the coordinates to a physical position in the environment of the mobile computer device; and model a motion of the virtual object in the environment with a physics engine.
 15. One or more non-transitory machine-readable storage media comprising a plurality of instructions that, when executed, cause a mobile computer device to: render a virtual object having first attributes within an environment of the mobile computer device; determine, with a camera, that a gesture command indicates that the virtual object is to move in a direction of a content consumption device; transmit, in response to the determination that the gesture command indicates that the virtual object is to move in a direction of the content consumption device and in response to a determination that a position of the virtual object in a virtual space is within a viewing frustum of the content consumption device, the virtual object to the content consumption device, wherein the virtual object is not rendered within the environment of the mobile computer device in response to transmitting the virtual object to the content consumption device; receive the virtual object having second attributes from the content consumption device, wherein the second attributes are different from the first attributes; and render the virtual object having the second attributes within the environment of the mobile computer device in response to receiving the virtual object from the content consumption device.
 16. The one or more non-transitory machine-readable storage media of claim 15, wherein the virtual object comprises a virtual character, the first attributes comprise first character attributes, and the second attributes comprise second character attributes.
 17. The one or more non-transitory machine-readable storage media of claim 15, wherein the plurality of instructions, when executed, further cause the mobile computer device to authenticate a user account with a content source, and initialize the virtual object based on the authenticated user account.
 18. The one or more non-transitory machine-readable storage media of claim 15, wherein the plurality of instructions, when executed, further cause the mobile computer device to capture video of the environment of the mobile computer device.
 19. The one or more non-transitory machine-readable storage media of claim 18, wherein the plurality of instructions, when executed, further cause the mobile computer device to render the virtual object as an animated overlay on the captured video of the environment.
 20. The one or more non-transitory machine-readable storage media of claim 15, wherein to render the virtual object comprises to: determine a view frustum as a function of a position or orientation of the mobile computer device; determine a virtual position of the virtual object in the virtual space; translate the virtual position of the virtual object to a physical position in a physical space representative of the environment of the mobile computer device; determine whether the physical position of the virtual object lies within the view frustum; and render, in response to a determination that the physical position of the virtual object lies within the view frustum, the virtual object.
 21. The one or more non-transitory machine-readable storage media of claim 15, wherein the plurality of instructions, when executed, further cause the mobile computer device to: determine coordinates of the virtual object in the virtual space; translate the coordinates to a physical position in the environment of the mobile computer device; and model a motion of the virtual object in the environment with a physics engine.
 22. A method comprising: rendering, by a mobile computer device, a virtual object having first attributes within an environment of the mobile computer device; determining, by the mobile computer device and with a camera, that a gesture command indicates that the virtual object is to move in a direction of a content consumption device; transmitting, by the mobile computer device, in response to the determination that the gesture command indicates that the virtual object is to move in a direction of the content consumption device and in response to a determination that a position of the virtual object in a virtual space is within a viewing frustum of the content consumption device, the virtual object to the content consumption device, wherein the virtual object is not rendered within the environment of the mobile computer device in response to transmitting the virtual object to the content consumption device; receiving, by the mobile computer device, the virtual object having second attributes from the content consumption device, wherein the second attributes are different from the first attributes; and rendering, by the mobile computer device, the virtual object having the second attributes within the environment of the mobile computer device in response to receiving the virtual object from the content consumption device. 